home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / modules / nessus-2.2.8.mo / usr / lib / nessus / plugins / kerberos5_issues.nasl < prev    next >
Text File  |  2005-01-14  |  5KB  |  181 lines

  1. #
  2. # This script was written by Renaud Deraison
  3. #
  4. # See the Nessus Scripts License for details
  5. #
  6. #
  7. # This script simply attempts to log into the realm FR.NESSUS.ORG
  8. # with a username of "whatever". It does not check for any flaw (which
  9. # is bad), but that may change in the future.
  10.  
  11. if(description)
  12. {
  13.  script_id(11512);
  14.  script_bugtraq_id(11078, 11079, 6712, 6713, 6714, 7184, 7185);
  15.  script_cve_id("CAN-2003-0072", "CAN-2003-0082", "CAN-2003-0059", "CAN-2003-0060", "CAN-2002-0036", "CAN-2003-0028", "CAN-2003-0138", "CAN-2003-0139");
  16.  if ( defined_func("script_xref") ) script_xref(name:"RHSA", value:"RHSA-2003:091-01");
  17.  
  18.  script_version ("$Revision: 1.5 $");
  19.  name["english"] = "Kerberos 5 issues";
  20.  script_name(english:name["english"]);
  21.  
  22.  desc["english"] = "
  23. The remote host is running Kerberos 5.
  24.  
  25. There are multiple flaws which affect this product,
  26. make sure you are running the latest version with
  27. the latest patches.
  28.  
  29. *** Nessus could not check for any of the flaws
  30. *** and solely relied on the presence of the service
  31. *** to issue an alert, so this might be a false positive
  32.  
  33. Solution : Upgrade to the latest version of MIT kerberos
  34. Risk factor : High";
  35.  
  36.  
  37.  
  38.  
  39.  script_description(english:desc["english"]);
  40.  
  41.  summary["english"] = "Check for kerberos";
  42.  
  43.  script_summary(english:summary["english"],
  44. francais:summary["francais"]);
  45.  
  46.  script_category(ACT_GATHER_INFO);
  47.  
  48.  
  49.  script_copyright(english:"This script is Copyright (C) 2003 Renaud Deraison");
  50.  family["english"] = "General";
  51.  script_family(english:family["english"]);
  52.  exit(0);
  53. }
  54.  
  55.  
  56. name = "whatever";
  57.  
  58. len = strlen(name);
  59. #len = 1024;
  60. if(len > 256)
  61. {
  62.  len = raw_string(0x82, len / 256, len % 256);
  63. #len = raw_string(0x84, 0x7F, 0xFF, 0xFF, 0xFF);
  64. }
  65. else len = raw_string(len % 256);
  66.  
  67. pk_lenE = 12 + strlen(name);
  68. if(strlen(name) > 256)
  69.  pk_lenE = raw_string(0x82, pk_lenE / 256, pk_lenE % 256);
  70. else
  71.  pk_lenE = raw_string( pk_lenE % 256);
  72.  
  73.  
  74. pk_lenD = 186 + strlen(name);
  75. if(strlen(name) > 256)pk_lenD += 14;
  76. if(pk_lenD > 256)
  77.  pk_lenD = raw_string(0x82, pk_lenD / 256, pk_lenD % 256);
  78. else
  79.  pk_lenD = raw_string(0x81, pk_lenD % 256);
  80.  
  81.  
  82.  
  83. pk_lenC = 183 + strlen(name);
  84. if(strlen(name) > 256)pk_lenC += 12;
  85. if(pk_lenC > 256)
  86.  pk_lenC = raw_string(0x82, pk_lenC / 256, pk_lenC % 256);
  87. else
  88.  pk_lenC = raw_string(0x81, pk_lenC % 256);
  89.  
  90.  
  91. pk_lenB = 170 + strlen(name);
  92. if(strlen(name) > 256)pk_lenB += 10;
  93. if(pk_lenB > 256)
  94.  pk_lenB = raw_string(0x82, pk_lenB / 256, pk_lenB % 256);
  95. else
  96.  pk_lenB = raw_string(0x81, pk_lenB % 256);
  97.  
  98.  
  99. pk_lenA = 167 + strlen(name);
  100. if(strlen(name) > 256)pk_lenA += 8;
  101. if(pk_lenA > 256)
  102.  pk_lenA = raw_string(0x82, pk_lenA / 256, pk_lenA % 256);
  103. else
  104.  pk_lenA = raw_string(0x81, pk_lenA % 256);
  105.  
  106.  
  107. pk_len0 = 11 + strlen(name);
  108. if(strlen(name) > 256) pk_len0 += 6;
  109. if(pk_len0 > 256)
  110. {
  111.  pk_len0 = raw_string(0x82, pk_len0 / 256, pk_len0 % 256);
  112. }
  113. else pk_len0 = raw_string(pk_len0 % 256);
  114.  
  115. pk_len1 = 4 + strlen(name);
  116. if(strlen(name) > 256) pk_len1 += 4;
  117. if(pk_len1 > 256)
  118. {
  119.  pk_len1 = raw_string(0x82, pk_len1 / 256, pk_len1 % 256);
  120. }
  121. else pk_len1 = raw_string(pk_len1 % 256);
  122.  
  123. pk_len2 = 2 + strlen(name);
  124. if(strlen(name) > 256) pk_len2 += 2;
  125.  
  126. if(pk_len2 > 256)
  127. {
  128.  pk_len2 = raw_string(0x82, pk_len2 / 256, pk_len2 % 256);
  129. }
  130. else pk_len2 = raw_string(pk_len2 % 256);
  131.  
  132.  
  133.  
  134. req = raw_string(
  135.          0x6A) + pk_lenD + raw_string(0x30)+ pk_lenC + raw_string(0xA1, 0x03,
  136.          0x02, 0x01, 0x05, 0xA2, 0x03,
  137.          0x02, 0x01, 0x0A, 0xA4) + pk_lenB + raw_string(0x30) + pk_lenA +
  138.          raw_string(
  139.          0xA0, 0x07, 0x03, 0x05, # ??
  140.          0x00, 0x00, 0x00, 0x00, 0x00, 0xA1)+ pk_lenE + raw_string(
  141.          0x30) + pk_len0 + raw_string(0xA0, 0x03, 
  142.          0x02, 0x01, 0x01,
  143.          0xA1) + pk_len1 + raw_string( 0x30) + pk_len2 + 
  144.          raw_string(0x1B) + len + name + raw_string(
  145.          0xA2, 0x0F, 0x1B, 0x0D, 
  146.          0x46, 0x52, 0x2E, 0x4E, 0x45, 0x53, 0x53, 0x55,
  147.          0x53, 0x2E, 0x4F, 0x52, 0x47, 0xA3, 0x22, 0x30,
  148.          0x20, 0xA0, 0x03, 0x02, 0x01, 0x00, 0xA1, 0x19,
  149.          0x30, 0x17, 0x1B, 0x06, 0x6B, 0x72, 0x62, 0x74,
  150.          0x67, 0x74, 0x1B, 0x0D, 0x46, 0x52, 0x2E, 0x4E,
  151.          0x45, 0x53, 0x53, 0x55, 0x53, 0x2E, 0x4F, 0x52,
  152.          0x47, 0xA4, 0x11, 0x18, 0x0F, 0x32, 0x30, 0x30,
  153.          0x33, 0x30, 0x34, 0x30, 0x33, 0x31, 0x32, 0x35,
  154.          0x37, 0x33, 0x38, 0x5A, 0xA5, 0x11, 0x18, 0x0F,
  155.          0x32, 0x30, 0x30, 0x33, 0x30, 0x34, 0x30, 0x33,
  156.          0x32, 0x32, 0x35, 0x37, 0x33, 0x38, 0x5A, 0xA7,
  157.          0x06, 0x02, 0x04, 0x3E, 0x8c, 0x2f, 0xC2, 0xA8,
  158.          0x08, 0x30, 0x06, 0x02, 0x01, 0x10, 0x02, 0x01,
  159.          0x01, 0xA9, 0x20, 0x30, 0x1E, 0x30, 0x0D, 0xA0,
  160.          0x03, 0x02, 0x01, 0x02, 0xA1, 0x06, 0x04, 0x04,
  161.          0x0A, 0xA3, 0x9c, 0x12, 0x30, 0x0D, 0xA0, 0x03,
  162.          0x02, 0x01, 0x02, 0xA1, 0x06, 0x04, 0x04, 0x0A,
  163.          0xA3, 0x9F, 0x01);
  164.          
  165.          
  166. foreach port (make_list(88, 750))
  167. {         
  168.  soc = open_sock_udp(port);
  169.  send(socket:soc, data:req);
  170.  r = recv(socket:soc, length:4096);
  171.  close(soc);
  172.  
  173.  if(strlen(r) > 10 && ord(r[10]) == 5)
  174.  {
  175.  security_hole(port:port, proto:"udp"); 
  176.  }
  177. }
  178.          
  179.